#ifndef FLAG1STATUS_H
#define FLAG1STATUS_H

#include <QWidget>
#include <QJsonObject>
#include <QLabel>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QHash>


#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonArray>
#include <QDebug>
#include <QMap>
#include <QLineEdit>
#include <QMutex>
#include"DeviceManager.h"
#include <QSharedPointer>

class Flag1Status : public QWidget
{
    Q_OBJECT

public:
    explicit Flag1Status(const QJsonObject &statusDetails, QWidget *parent = nullptr);
    ~Flag1Status() override { qDebug() << "[Flag1Status] ~Flag1Status()"; }

    // 更新字段值
    void updateFieldValue(const QString &fieldName, const QString &newValue);

    void subEventCallBack(const QString& content);
public slots:
    // 绑定节点后
    void attachToNode(QSharedPointer<DeviceNode> node);

private slots:
    void onDataReceived(const QString& content);
    void onEventReceived(const QString& content);

private:
    void setupControlLayout(const QJsonObject &statusDetails);

    QHash<QString, QLineEdit*> fieldLineEdits;  // 存储字段和 QLineEdit 对应的哈希表

    void dataAnayle(const QString& content);
    QSharedPointer<DeviceNode> m_node;
    QMutex mFlag1StatusMutex;//互斥鎖

    bool flagLimit;
};

#endif // FLAG1STATUS_H
